package model

import (
	"AccessAdmin/internal/model/entity"
)

// UserLoginInput 用户登录
type UserLoginInput struct {
	Username     string // 账号
	Password     string // 密码(明文)
	LoginBrowser string
	LoginDevice  string
}

// UserLoginLogInput 登录日志
type UserLoginLogInput struct {
	Username     string // 账号
	UserId       uint
	LoginIp      string
	LoginBrowser string
	LoginDevice  string
	Remark       string
	IsSuccess    bool
	LoginTime    string
}

// UserGetListInput 查询用户列表
type UserGetListInput struct {
	Page     int    // 分页码
	Size     int    // 分页数量
	Username string // 用户名
	Status   int    // 状态
}

// UserGetListOutput 查询列表结果
type UserGetListOutput struct {
	List  []entity.UserAdmin `json:"list"`  // 列表
	Page  int                `json:"page"`  // 分页码
	Size  int                `json:"size"`  // 分页数量
	Total int                `json:"total"` // 数据总数
}

type UserGetDetailInput struct {
	Id uint
}

type UserGetDetailOutput struct {
	entity.UserAdmin
}

// UserCreateUpdateBase 创建/修改用户基类
type UserCreateUpdateBase struct {
	Username string // 用户名
	RealName string // 真实名
	Password string // 密码
	Phone    string // 手机号
	Email    string // 邮箱
	Status   int    // 状态
	Roles    []uint
}

// UserCreateInput 创建用户
type UserCreateInput struct {
	UserCreateUpdateBase
}

// UserCreateOutput 创建用户返回结果
type UserCreateOutput struct {
	UserId uint `json:"user_id"`
}

// UserUpdateInput 修改用户
type UserUpdateInput struct {
	UserCreateUpdateBase
	Id uint
}

// UserUpdatePasswordInput 修改用户密码
type UserUpdatePasswordInput struct {
	OldPassword string
	NewPassword string
	RepPassword string
}

// UserUpdateInfoInput 用户中心修改个人信息
type UserUpdateInfoInput struct {
	AvatarUrl      string
	IsUpdateAvatar bool
	Phone          string
	Email          string
	RealName       string
	Remark         string
}
